1. Field of the Invention
The present invention relates to improving fault tolerance of a storage network. Specifically, the invention relates to apparatus, methods, and systems for mirroring data on a storage network in a shared manner.
2. Relevant Art
Data processing systems often maintain duplicate storage volumes, or data stores. A copy of a source volume (i.e. a target volume) containing the same data as the source volume is commonly referred to as a data mirror. Data mirrors are often created when on-line access to data is critical. If data from the primary volume is unavailable due to failure of a system component, data from the associated secondary volume is available.
To create and maintain a data mirror, data from a primary volume is often copied to one or more secondary volumes. In like fashion, updates to the primary volume are propagated to the secondary volume such that the secondary volume has the same data as the primary volume. Coherency is a term used to indicate the degree that data on a secondary volume is an exact copy of the data on a primary volume.
Synchronous mirroring techniques achieve a high level of coherency by directing each write operation to both a primary and a secondary volume. Synchronously mirrored systems often halt data processing after a write to a primary volume until an acknowledgment has been received that the associated write operation has also been performed on the corresponding secondary volume in a data mirror. Consequently, synchronous mirroring techniques may significantly degrade system performance, particularly when the secondary volume is remotely located and operations are transmitted over a communication line. Moreover, failure of a secondary volume or interruption of communication facilities may bring the processing system to a halt.
In an effort to improve performance in mirrored systems, techniques have been devised to provide “virtual coherency.” The term “virtual coherency” is related to the fact that although a secondary volume differs from a primary volume at a point in time, all necessary data to generate an exact copy on the secondary volume is available in various data repositories on the system. Incremental backup systems in which a primary volume is replicated on a secondary volume and then updated periodically with changes are examples of virtual coherency.
Systems that utilize virtual coherency to improve performance are vulnerable to failure of the repositories that store information necessary to reconstruct a data mirror. In the event of such failure, a typical method of recovery is to replicate the primary volume on the secondary volume and subsequently perform synchronous mirroring. This method interrupts the system's ability to provide access to data during the replication operation and severely impacts performance during the operating duration using synchronous mirroring.
What is needed are apparatus, methods, and systems that minimize performance degradation and improve fault tolerance during periods of component failure while achieving an acceptable level of coherency between primary and secondary volumes in a data mirror. Such apparatus, methods, and systems would provide constant access to data and maintain high levels of data integrity.